iT邦幫忙

1

[自學筆記]關於SVN(Subversion) 版本控制系統

艾米 2022-05-17 14:25:2129921 瀏覽
  • 分享至 

  • xImage
  •  

安妞大家 /images/emoticon/emoticon42.gif
以下一樣是自學筆記

什麼是SVN(Subversion) ?

SVN(Subversion) 是一個自由/開放源碼的版本控制系統,
也就是說 Subversion 管理著隨時間改變的檔案(跟git 87%像)

這些檔案放置在一個中央檔案庫 (Repository) 中,
這個檔案庫很像一個尋常的檔案伺服器,不過它會記住每一次檔案的變動

你可以把檔案回復到舊的版本,或是瀏覽檔案的變動歷程
svn tutorial

實際操作步驟(示範初始化&將新的項目加入SVN中&提交項目):

以下使用工具TortoiseSVN做示範SVN烏龜
TortoiseSVN應該是最多人用的一套SVN Client軟體,可透過檔案總管在檔案或目錄上方便用滑鼠右鍵的選單完成SVN的操作。

1.在電腦內建一新資料夾作為檔案庫(Repository)使用,這邊我命名為test。
2.對這個資料夾按滑鼠右鍵選擇「TortoiseSVN」→「在此建立檔案庫 Create repository here」。
https://ithelp.ithome.com.tw/upload/images/20220517/20135530ekM2Z9vk1t.png

3.我在test裡面新增了一個"工作目錄"的資料夾,進入後按滑鼠右鍵選擇「SVN取出(SVN checkout)」,確認路徑是否正確,所謂的checkout就是將資料從檔案庫取出(目前是初始化)
https://ithelp.ithome.com.tw/upload/images/20220517/20135530KGLKny1ctU.png
https://ithelp.ithome.com.tw/upload/images/20220517/20135530DtCdeaioTj.png
https://ithelp.ithome.com.tw/upload/images/20220517/20135530jLu1FZnChZ.png

  • 3.1 如果對資料夾按右鍵選Add,Add只是告訴SVN這些檔案需要版本管理,還沒有真的進入到SVN檔案庫
    https://ithelp.ithome.com.tw/upload/images/20220517/20135530aYsApweFRF.png

4.我新增一記事本將檔案存入於工作目錄資料夾,對檔案按右鍵選送交Commit,進入後可觀看歷史的log、寫入新log以及實際要Commit的檔案
https://ithelp.ithome.com.tw/upload/images/20220517/20135530CeEGhEJqjq.png
寫入更新檔案的訊息
https://ithelp.ithome.com.tw/upload/images/20220517/20135530B0E4jNr1UB.png
5.Commit送交完成
https://ithelp.ithome.com.tw/upload/images/20220517/201355305iUFehX7As.png
(未提交完成前資料夾圖示上會有一個紅色驚嘆號 提交完成會變綠色打勾) 提交完成可操作其他功能!
https://ithelp.ithome.com.tw/upload/images/20220517/20135530sZN6T5vL0y.png

常用的SVN指令

1.取得內容
check out(co):-> 初始化檢出 - 設定工作拷貝
svn checkout svn+ssh//your.remote-server.com/home/svn/test
svn co http網址
svn co file://
svn co-r file

update(up):更新為svn上最新版本
svn up

2.變更檔案
add:將檔案或目錄加進SVN 之後還要再commit才會真的加進SVN
svn add file-> 將新的項目加入 SVN 中
svn add folder

del,rm:將檔案或目錄刪除,之後還要再commit才會真的從svn刪除
svn del file 或svn rm file

svn move

3.看儲存庫變化
svn status -u

4.合併程式碼
svn diff(確認差異)
svn resolved

5.提交修正
Commit(ci):將目前有修改的commit到SVN
svn ci(全部有修改的都會commit)
svn ci file1 file2 file3(只將file123commit)


關於TortoiseSVN 的圖示

SVNstatusLogo



另外以下是其他技術文章,
有提到的SVN 與 Git 這兩個版本控制系統的優劣勢 也一併給大家看一下~


SVN 的優勢:

  • 用法簡單,易上手,沒有 Git 那麼多的命令,對新手比較友好。
  • 易於管理,對許可權的管理相當嚴格,可以按組、個人針對某個子目錄的許可權控制。
  • 文件鎖定意義上真的非常有用,尤其是分工明確,且不願意讓別人碰自己程式碼的時候。
  • 本地裝置上的檔案更小,更省記憶體,尤其是做大專案的時候,對電腦記憶體比較友好。
  • 可以單獨檢出某個有許可權的目錄。
  • 有全域性版本號——不需要手動編號。

SVN 的劣勢:

  • 專案放在中央伺服器中,一旦伺服器出現什麼意外,就會損失慘重。
  • 斷網意味著不能工作,比較扎心。聯內網還好,聯外網能卡得你懷疑人生。
  • 人一多伺服器就有點遭不住,尤其是那種大型開源專案。
  • 分支管理不靈活,svn分支是一個完整的目錄,且這個目錄擁有完整的實際檔案,這些操作都是在服務端進行同步的,* 不是本地化操作,如果要刪除分支,也是需要將遠端的分支進行刪除,這會導致大家都得同步。

Git的優勢:

  • 速度快,靈活 可離線工作。
  • 十分詳細且忠實地反映版本間的變化,能夠及時且方便地解決衝突。
  • 擁有多個完整獨立的分支,且可以只選擇推送共享分支。
  • 本地擁有完整的 git 版本庫,無論損壞了那一邊,都能夠通過克隆的方式恢復。

Git的劣勢:

  • 許可權管理形同虛設,幾乎所有人都能獲取更改全部檔案,難保會不會有傻缺更改註釋不全的程式碼,導致報錯……而且也很容易被人扒原始碼掛網上。
  • 模式上比 SVN 複雜,相對的學習週期更長。

官方網站及資料參考來源:
Yes
TortoiseSVN官方網站
版本控制工具SVN-常用基本指令/狀態表示
SVN 與 Git 的優缺點
SVN筆記
TortoiseSVN 常用指令介紹
SVN 筆記 - 基本指令
svn版控使用
Git和Subversion的命令比較表

以上是本人SVN的自學筆記,有錯再請不吝指正謝謝!


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言